package com.itbupt.infrastructure.persistent.dao;

import cn.bugstack.middleware.db.router.annotation.DBRouter;
import com.itbupt.infrastructure.persistent.po.Task;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author dingchang
 * @Date 2025/4/2 16:20
 * @Description:
 */

@Mapper
public interface ITaskDao {

    /**
     * 插入一条任务记录
     * @param task 任务表
     */
    void insert(Task task);

    /**
     * 更新任务记录 - 发送成功 - state: completed
     * @param task
     */
    @DBRouter
    void updateTaskSendMessageCompleted(Task task);


    /**
     * 更新任务记录 - 发送失败 - state: fail
     * @param task
     */
    @DBRouter
    void updateTaskSendMessageFail(Task task);

    /**
     * 查询发送MQ失败和超时1分钟未发送的MQ
     * @return 返回未发送的任务消息列表10条
     */
    List<Task> queryNoSendMessageTaskList();

}
